package com.zhang.bingmei_incomeexpenditure.entity.ie;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;

/**
 * 收支情况实体类
 * 对应数据库表：income_expenditure
 */
//@ApiModel(description = "收支情况表")
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("income_expenditure")
public class IncomeExpenditure implements Serializable {

   //@ApiModelProperty("id主键")
    private String id;

    //@ApiModelProperty("市辖区（如“秀英区”“龙华区”“琼山区”“美兰区”）")
    @TableField(value = "district")
    private String district;

    // 新增区域编码相关字段（与数据库表对应）
    //@ApiModelProperty("市辖区编码（如460105表示秀英区）")

    private String code;

   // @ApiModelProperty("编码层级")
    private String levelCode;

    //@ApiModelProperty("全称名称（如海南省，海口市，秀英区）")
    private String mergerName;

   // @ApiModelProperty("父编码（上级区域编码，如秀英区的父编码为海口市460100）")
    private String parentCode;

   // @ApiModelProperty("年度（如“2024”“2025”）")
    private Integer year;  // 建议改为Integer类型，便于年份范围查询

    // 经费来源
   // @ApiModelProperty("市级下拨经费")
    @TableField(value = "city_allocated")
    private Long cityAllocated;

    //@ApiModelProperty("区级配套经费")
    @TableField(value = "district_allocated")
    private Long districtAllocated;

    //@ApiModelProperty("其他（财政专项、单位自筹等）")
    @TableField(value = "other_funds")
    private Long otherFunds;

    //@ApiModelProperty("经费来源合计")
    @TableField(value = "total_funds")
    private Long totalFunds;

    // 已实际完成支付
   // @ApiModelProperty("购置、维修、维护“防蚊、防蚊蝇”设施支出")
    @TableField(value = "purchase_maintain")
    private Long purchaseMaintain;

   // @ApiModelProperty("购买消杀设备、药品支出")
    @TableField(value = "purchase_equipment")
    private Long purchaseEquipment;

   // @ApiModelProperty("病媒生物防制相关宣传费、印刷费")
    @TableField(value = "disease_prevention")
    private Long diseasePrevention;
//
    // @ApiModelProperty("组织专家开展区内病媒防制工作研讨、交流、制定技术规范等支出")
    @TableField(value = "expert_training")
    private Long expertTraining;

   // @ApiModelProperty("购买第三方开展病媒生物防制服务所需的费用支出")
    @TableField(value = "third_party_service")
    private Long thirdPartyService;

   // @ApiModelProperty("其他不属于上述用途的支出")
    @TableField(value = "other_payment")
    private Long otherPayment;

   // @ApiModelProperty("已实际完成支付合计")
    @TableField(value = "total_payment")
    private Long totalPayment;

    // 被财政部门收回的资金
   // @ApiModelProperty("被收回的市级下拨经费")
    @TableField(value = "city_recovered")
    private Long cityRecovered;

  //  @ApiModelProperty("被收回的区级配套经费")
    @TableField(value = "district_recovered")
    private Long districtRecovered;

    /**
     * 删除标志：0-正常，1-删除
     */
    @JsonIgnore
    @TableField(value = "deleted", fill = FieldFill.INSERT)
    private Boolean deleted;

  //  @ApiModelProperty(value = "创建者")
    @TableField(value = "create_by", fill= FieldFill.INSERT)
    private String createBy;

   // @ApiModelProperty(value = "更新者")
    @TableField(value = "update_by", fill= FieldFill.INSERT_UPDATE)
    private String updateBy;

  //  @ApiModelProperty(value = "创建日期")
    @TableField(value = "create_time", fill= FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

   // @ApiModelProperty(value = "更新时间")
    @TableField(value = "update_time", fill= FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
}